package com.qfedu.edu.pojo;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @author xiaobobo
 * @title: User
 * @projectName CD-Java-FY-2401-Springboot-Parent
 * @description: TODO
 * @date 2024/9/11  9:35
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("t_user")
public class User {

    //IdType.ID_WORKER_STR：表示的是主键的类型是 19位的字符串
    //IdType.ID_WORKER：这个表示的是使用19位的数字作为主键
    //type = IdType.AUTO：这个表示的是主键自增
    // type = IdType.INPUT：这个表示的是自己输入主键
    //type = IdType.NONE这个就表示没有主键生成策略 那么需要自己输入主键
    //type = IdType.UUID这个就表示的是使用UUID作为主键
    @TableId(type = IdType.AUTO)  //@TableId表示的是下面的字段是主键
    private String userId;

    private String username;
    private String password;


    @TableField(value = "createTime",fill = FieldFill.INSERT)  //这个是告诉mp在插入数据的时候填充
    private Date createTime;


    @TableField(value = "updateTime",fill =FieldFill.INSERT_UPDATE ) //这个就是告诉他在插入和更新的时候都填充
    private Date updateTime;


    @TableLogic     //这个就表示的是一个逻辑删除的标记位
    private Integer deleted;


    @Version   //这个就表示这个字段是离线乐观锁的字段
    private Integer version;


    //我不希望这个字段在数据库中有对应怎么办呢?
    @TableField(exist = false)
    private String userXxx;
}
